package com.wanjia.estate.pojo.bank.nxbank;

import com.alibaba.fastjson.annotation.JSONField;
import lombok.AccessLevel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

import java.io.Serializable;


@NoArgsConstructor(access = AccessLevel.PRIVATE)
public class ZhsdTk {

    @Data
    @EqualsAndHashCode(callSuper = true)
    public static class ZhsdTkRequest extends ZhsdCommonRoot<TkRequestService> {

    }

    @Data
    public static class TkRequestService implements Serializable {
        @JSONField(name = "Service_Header")
        private TkRequestServiceHeader serviceHeader;

        @JSONField(name = "Service_Body")
        private TkRequestServiceBody serviceBody;
    }

    /*固定为空*/
    @Data
    public static class TkRequestServiceHeader implements Serializable {


    }


    @Data
    public static class TkRequestServiceBody extends ExtAttributesCommonRequest implements Serializable {
        @JSONField(name = "request")
        private TkRequest request;
    }

    @Data
    public static class TkRequest implements Serializable {

        @JSONField(name = "terminal_unitno")
        private String terminalUnitno;
        @JSONField(name = "terminal_name")
        private String terminalName;
        @JSONField(name = "terminal_acctno")
        private String terminalAcctno;
        @JSONField(name = "INM-ENC-DEV-ID")
        private String inmEncDevId;
        @JSONField(name = "feeflag")
        private String feeflag;
        @JSONField(name = "discountrate")
        private String discountrate;
        @JSONField(name = "trans_acc_flag")
        private String transAccFlag;
        @JSONField(name = "sysFlag")
        private String sysFlag;
        @JSONField(name = "macValue")
        private String macValue;
        @JSONField(name = "keyType")
        private String keyType;
        @JSONField(name = "deviceId")
        private String deviceId;
        @JSONField(name = "staffId")
        private String staffId;
        @JSONField(name = "version")
        private String version;
        @JSONField(name = "apiFlag")
        private String apiFlag;
        @JSONField(name = "transType")
        private String transType;
        @JSONField(name = "mchntCd")
        private String mchntCd;
//        @JSONField(name = "deviceId")
//        private String deviceId;
        @JSONField(name = "traceNo")
        private String traceNo;
        @JSONField(name = "origTraceNo")
        private String origTraceNo;
        @JSONField(name = "origOutTradeNo")
        private String origOutTradeNo;
        @JSONField(name = "refundFee")
        private String refundFee;
        @JSONField(name = "remark")
        private String remark;
        @JSONField(name = "longitude")
        private String longitude;
        @JSONField(name = "latitude")
        private String latitude;


    }


    @Data
    @EqualsAndHashCode(callSuper = true)
    public static class ZhsdTkReponse extends ZhsdCommonRoot<TkResponseService> {

    }


    @Data
    public static class TkResponseService implements Serializable {
        @JSONField(name = "Service_Header")
        private TkResponseServiceHeader serviceHeader;

        @JSONField(name = "Service_Body")
        private TkResponseServiceBody serviceBody;
    }


    @Data
    public static class TkResponseServiceHeader implements Serializable {


    }


    @Data
    public static class TkResponseServiceBody extends ExtAttributesCommonResponse implements Serializable {
        @JSONField(name = "response")
        private TkResponse  response ;
    }


    @Data
    public static class TkResponse implements Serializable {
        @JSONField(name = "respCode")
        private String respCode;
        @JSONField(name = "respMsg")
        private String respMsg;
        @JSONField(name = "transInfo")
        private String transInfo;
        @JSONField(name = "channelType")
        private String channelType;
        @JSONField(name = "origOutTradeNo")
        private String origOutTradeNo;
        @JSONField(name = "origTransAmount")
        private String origTransAmount;
        @JSONField(name = "traceNo")
        private String traceNo;
        @JSONField(name = "outTradeNo")
        private String outTradeNo;
        @JSONField(name = "transStatus")
        private String transStatus;
        @JSONField(name = "transStatusDesc")
        private String transStatusDesc;
        @JSONField(name = "refundFee")
        private String refundFee;
        @JSONField(name = "transDatetime")
        private String transDatetime;
        @JSONField(name = "handlingCharge")
        private String handlingCharge;
        @JSONField(name = "remark")
        private String remark;
    }
}
